From e95e2d5048e59cb0615943400d738534a24aa958 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 8 Dec 2015 15:52:35 +0100 Subject: [PATCH] iconhelper: Get rid of _gtk_icon_helper_set_window() Instead use the window of the owner widget. --- gtk/gtkcellrendererpixbuf.c | 2 -- gtk/gtkentry.c | 6 ------ gtk/gtkiconhelper.c | 43 ++++++------------------------------- gtk/gtkiconhelperprivate.h | 2 -- gtk/gtkimage.c | 18 ---------------- gtk/gtkspinbutton.c | 1 - 6 files changed, 7 insertions(+), 65 deletions(-) diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c index 397e7daea0..2f781cbbf4 100644 --- a/gtk/gtkcellrendererpixbuf.c +++ b/gtk/gtkcellrendererpixbuf.c @@ -593,8 +593,6 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer *cell, if (icon_helper == NULL) icon_helper = create_icon_helper (cellpixbuf, widget); - _gtk_icon_helper_set_window (icon_helper, - gtk_widget_get_window (widget)); _gtk_icon_helper_draw (icon_helper, context, cr, pix_rect.x, pix_rect.y); diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 139bd11014..83e738b71f 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -3134,10 +3134,6 @@ realize_icon_info (GtkWidget *widget, gtk_widget_register_window (widget, icon_info->window); gtk_widget_queue_resize (widget); - - _gtk_icon_helper_set_window (icon_info->icon_helper, - gtk_widget_get_window (widget)); - } static void @@ -3439,8 +3435,6 @@ gtk_entry_unrealize (GtkWidget *widget) { if ((icon_info = priv->icons[i]) != NULL) { - _gtk_icon_helper_set_window (icon_info->icon_helper, NULL); - if (icon_info->window != NULL) { gtk_widget_unregister_window (widget, icon_info->window); diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c index 9cae307173..ad79e2d85e 100644 --- a/gtk/gtkiconhelper.c +++ b/gtk/gtkiconhelper.c @@ -67,7 +67,6 @@ gtk_icon_helper_take_definition (GtkIconHelper *self, void _gtk_icon_helper_clear (GtkIconHelper *self) { - g_clear_object (&self->priv->window); g_clear_pointer (&self->priv->rendered_surface, cairo_surface_destroy); gtk_image_definition_unref (self->priv->def); @@ -87,17 +86,6 @@ _gtk_icon_helper_invalidate (GtkIconHelper *self) } } -void - _gtk_icon_helper_set_window (GtkIconHelper *self, - GdkWindow *window) -{ - if (window) - g_object_ref (window); - g_clear_object (&self->priv->window); - self->priv->window = window; - -} - static void gtk_icon_helper_finalize (GObject *object) { @@ -223,30 +211,13 @@ get_surface_size (GtkIconHelper *self, cairo_destroy (cr); } -static gint -get_scale_factor (GtkIconHelper *self, - GtkStyleContext *context) -{ - GdkScreen *screen; - - if (self->priv->window) - return gdk_window_get_scale_factor (self->priv->window); - - screen = gtk_style_context_get_screen (context); - - /* else fall back to something that is more likely to be right than - * just returning 1: - */ - return gdk_screen_get_monitor_scale_factor (screen, 0); -} - static gboolean check_invalidate_surface (GtkIconHelper *self, GtkStyleContext *context) { int scale; - scale = get_scale_factor (self, context); + scale = gtk_widget_get_scale_factor (self->priv->owner); if ((self->priv->rendered_surface != NULL) && (self->priv->last_surface_scale == scale)) @@ -341,7 +312,7 @@ ensure_surface_from_pixbuf (GtkIconHelper *self, else pixbuf = g_object_ref (orig_pixbuf); - surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, self->priv->window); + surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, gtk_widget_get_window (self->priv->owner)); icon_effect = _gtk_css_icon_effect_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_EFFECT)); gtk_css_icon_effect_apply (icon_effect, surface); g_object_unref (pixbuf); @@ -366,7 +337,7 @@ ensure_surface_for_icon_set (GtkIconHelper *self, scale); surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, - self->priv->window); + gtk_widget_get_window (self->priv->owner)); g_object_unref (pixbuf); return surface; @@ -442,13 +413,13 @@ ensure_surface_for_gicon (GtkIconHelper *self, { GtkCssIconEffect icon_effect; - surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, self->priv->window); + surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, gtk_widget_get_window (self->priv->owner)); icon_effect = _gtk_css_icon_effect_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_EFFECT)); gtk_css_icon_effect_apply (icon_effect, surface); } else { - surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, self->priv->window); + surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, gtk_widget_get_window (self->priv->owner)); } g_object_unref (destination); @@ -546,7 +517,7 @@ gtk_icon_helper_ensure_surface (GtkIconHelper *self, if (!check_invalidate_surface (self, context)) return; - scale = get_scale_factor (self, context); + scale = gtk_widget_get_scale_factor (self->priv->owner); self->priv->rendered_surface = gtk_icon_helper_load_surface (self, context, scale); } @@ -575,7 +546,7 @@ _gtk_icon_helper_get_size (GtkIconHelper *self, case GTK_IMAGE_PIXBUF: get_pixbuf_size (self, - get_scale_factor (self, context), + gtk_widget_get_scale_factor (self->priv->owner), gtk_image_definition_get_pixbuf (self->priv->def), gtk_image_definition_get_scale (self->priv->def), &width, &height, &scale); diff --git a/gtk/gtkiconhelperprivate.h b/gtk/gtkiconhelperprivate.h index a7bbcaec6d..df4fb6ab77 100644 --- a/gtk/gtkiconhelperprivate.h +++ b/gtk/gtkiconhelperprivate.h @@ -71,8 +71,6 @@ GtkIconHelper *_gtk_icon_helper_new (GtkWidget *owner); void _gtk_icon_helper_clear (GtkIconHelper *self); void _gtk_icon_helper_invalidate (GtkIconHelper *self); -void _gtk_icon_helper_set_window (GtkIconHelper *self, - GdkWindow *window); gboolean _gtk_icon_helper_get_is_empty (GtkIconHelper *self); diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index a24d0dfcc2..48c00dc3e5 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -157,7 +157,6 @@ static gint gtk_image_draw (GtkWidget *widget, static void gtk_image_size_allocate (GtkWidget *widget, GtkAllocation*allocation); static void gtk_image_unmap (GtkWidget *widget); -static void gtk_image_realize (GtkWidget *widget); static void gtk_image_unrealize (GtkWidget *widget); static void gtk_image_get_preferred_width (GtkWidget *widget, gint *minimum, @@ -233,7 +232,6 @@ gtk_image_class_init (GtkImageClass *class) widget_class->get_preferred_height_and_baseline_for_width = gtk_image_get_preferred_height_and_baseline_for_width; widget_class->size_allocate = gtk_image_size_allocate; widget_class->unmap = gtk_image_unmap; - widget_class->realize = gtk_image_realize; widget_class->unrealize = gtk_image_unrealize; widget_class->style_updated = gtk_image_style_updated; widget_class->screen_changed = gtk_image_screen_changed; @@ -1557,25 +1555,9 @@ gtk_image_unmap (GtkWidget *widget) GTK_WIDGET_CLASS (gtk_image_parent_class)->unmap (widget); } -static void -gtk_image_realize (GtkWidget *widget) -{ - GtkImage *image = GTK_IMAGE (widget); - GtkImagePrivate *priv = image->priv; - - GTK_WIDGET_CLASS (gtk_image_parent_class)->realize (widget); - - _gtk_icon_helper_set_window (priv->icon_helper, - gtk_widget_get_window (widget)); -} - static void gtk_image_unrealize (GtkWidget *widget) { - GtkImage *image = GTK_IMAGE (widget); - GtkImagePrivate *priv = image->priv; - - _gtk_icon_helper_set_window (priv->icon_helper, NULL); gtk_image_reset_anim_iter (GTK_IMAGE (widget)); GTK_WIDGET_CLASS (gtk_image_parent_class)->unrealize (widget); diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c index 0bf12c6bb5..7b2f2984da 100644 --- a/gtk/gtkspinbutton.c +++ b/gtk/gtkspinbutton.c @@ -1100,7 +1100,6 @@ gtk_spin_button_panel_draw (GtkSpinButton *spin_button, width = gdk_window_get_width (panel); icon_helper = _gtk_icon_helper_new (widget); - _gtk_icon_helper_set_window (icon_helper, panel); _gtk_icon_helper_set_use_fallback (icon_helper, TRUE); if (panel == priv->down_panel) -- 2.30.2